home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1999 #1
/
Amiga Plus 1999 #1.iso
/
System-Boost
/
Sound
/
Play16_1.8
/
Play16.dok
< prev
next >
Wrap
Text File
|
1998-07-30
|
21KB
|
517 lines
--------------------------------------------------------------------------
- Play16 Version 1.8 (11.09.97) - Ein flexibler Soundabspieler für Amiga -
--------------------------------------------------------------------------
Readme.1st
----------
Tschuldigung, für mehr hatte ich keine Zeit. Wünsche nachwievor
willkommen :)
Kurzübersicht
-------------
- FREEWARE! Keine Betaversion, keine Nervrequester und kein Ablaufdatum!
- Online Hilfe
- erkennt und spielt automatisch verschiedene Soundformate, bis zu
16 Bit, 56 kHz, stereo
- volle Workbench-Unterstützung, jedoch kein GUI
- immer korrekte Wiedergabegeschwindigkeit, auch bei Sounds >28 kHz
- Echtzeitwiedergabe von Festplatte, optimierte Assembler-Routinen
- 14 Bit Ausgabe möglich (weniger Rauschen, aber schlechter als 16 Bit)
- Unterstützt AHI und Soundkarten
- automatische oder manuelle Filter-Kontrolle
- spielt Mono-Sounds auf BEIDEN Kanälen, nicht nur auf dem linken
- spielt (und wiederholt) Files, die größer als der Speicher sind
- Preload-Funktion für synchronen Wiedergabestart auf Tastendruck
- schnelle µ-Law/A-Law Dekodierung
- Systemfreundliche Audiokanal-Belegung
- Ausgabe in ein File ist möglich (Sound-Konvertierung)
- unterstützte Filetypen bislang:
* Microsoft RIFF-WAVE (.WAV) mono/stereo, 8/16 bit, linear/uLaw/ALaw/ADPCM
* Creative Voice File (.VOC) mono/stereo, 8/16 bit, linear
* Sun/NeXT Audio (.AU) mono/stereo, 8/16 bit, linear/uLaw
* MacroSystem Audio (.MAUD) mono/stereo, 8/16 bit, linear/uLaw
* Apple/SGI/Amiga AIFF (.AIFF) mono/stereo, 8/16 bit, linear
* Amiga IFF-8SVX (.IFF) mono/stereo, 8 bit, linear/FibDelta/ExpDelta
* RAW Sounddaten mit mindestens einer folgender Voraussetzungen:
- 8 bit Vorzeichenbehaftet
- 8 bit nicht Vorzeichenbehaftet
- 16 bit signed, Intel Format (LSB zuerst)
- 16 bit signed, Motorola Format (MSB zuerst)
- 14 bit µ-Law
- 14 bit A-Law
- derzeitig unterstützte Ausgabegeräte:
* Amiga (Paula) 8 bit
* Amiga (Paula) 14 bit
* Amiga (Paula) 14 bit kalibriert (Christian Buchner)
* MacroSystem Maestro Pro 16 bit 44.1kHz und 48kHz
* IFF-8SVX File Ausgabe 8 bit
* AHI audio system 16 bit
* Prelude 16 bit
========================== Kapitel 1: Quick Start =========================
Was wird für Play16 benötigt?
-----------------------------
Ein Amiga mit mindestens Kickstart/Workbench 2.04.
asyncio.library
Um die kalibrierte 14Bit-Ausgabe zu verwenden, muß eine gültige CyberSound-
Kalibrierungsdatei im ENVARC: vorhanden sein. Wenn eine solche noch nicht
erstellt wurde, kann es mit Christians Kalibrierungsprogramm, das sich in
diesem Archiv befindet, erzeugt werden.
Maestix.library V39 wird für die MPro-Ausgabe benötigt.
Das AHI audio system V2 wird für die AHI-Ausgabe benötigt.
Wo finde ich die neueste Version?
---------------------------------
- FIDONET: Amiga Venture BBS, Germany (2:2432/350)
- AMINET: mus/play
- WWW: http://linux.rz.fh-hannover.de/~wenzel/Play16/
ferner empfehle ich, folgende Produkte anzusehen:
Prelude:
- WWW: http://linux.rz.fh-hannover.de/~wenzel/Prelude_d.html
CyberSound:
- AMINET: disk/cdrom/14Bit_CDPlayer.lha
Maestix:
- AMINET: util/libs/Maestix39_00.lha
AHI audio system:
- WWW: http://www.lysator.liu.se/~lcs/ahi.html
Wie verwende ich es?
--------------------
CLI: "Play16 <filename>" - das ist alles!
Workbench: Nach einem Doppelklick auf das Icon erscheint ein Filerequester.
Alle möglichen Optionen werden später erläutert. Wenn keine Option gesetzt
ist, werden die Standardwerte angenommen.
================== Kapitel 2: Hintergrund-Informationen ===================
Was tut es?
-----------
Grundsätzlich ist Play16 in der Lage, unkomprimierte und _einige_
komprimierte Soundfiles mit dem Standard Amiga AudioDevice abzuspielen
oder eine wachsende Anzahl externer Geräte anzusteuern. Sollte die dazu
benötigte Auflösung oder Wiedergabegeschwindigkeit eines Sample-Files die
Möglichkeiten der Abspielhardware überschreiten, wird eine Echtzeit-
Anpassung vorgenommen, so daß der Sound immer korrekt wiedergegeben wird.
Es können sogar 16 Bit/44.1kHz Sounds über den alten Amiga-Chipsatz (Paula)
wiedergegeben werden, vorausgesetzt, alle Elemente des verwendeten Systems
kommen mit der hohen Datentransferrate mit. In einem solchen Fall ist ein
beschleunigter Amiga eine sinnvolle Sache!
Die beiden Audiokanäle einer jeden Seite können miteinander verbunden
werden um nach dem Subranging Verfahren eine 14Bit Ausgabe zu ermöglichen.
Dies erfordert jedoch ebenfalls eine Menge Rechenzeit.
Auf jeden Fall ist ein Amiga 3000-16MHz schnell genug, ein unkomprimiertes
Soundfile mit 44.1kHz/14Bit (Productivity Mode!) direkt von der Festplatte
abzuspielen.
Ich habe nicht vor, Play16 soweit zu erweitern, daß es jedes, aber auch
jedes exotische Format, das irgendwo existieren mag, unterstützt. Dennoch
versuche ich, soviele verbreitete Formate wie möglich einzubinden.
Warum Play16?
-------------
Ich konnte seinerzeit kein CLI-Programm zum Abspielen von 16Bit-Aufnahmen
finden, also entschied ich mich, selber eines zu schreiben: Play16.
Warum kommandozeilen-orientiert - und keine graphische Oberfläche?
------------------------------------------------------------------
Es gibt so viele GUI unterstützende Directory-Utilities - Play16 kann
einfach als externer Player eingebunden werden. Die begleitende
Dokumentation der Directory-Programme sollte erläutern, wie dies möglich
ist. Ein Beispiel wäre: Ein Schalter namens "Jingle" wird angelegt und
enthält die Funktion "Play16 <filename> PRELOAD". Nachdem dann das
gewünschte Soundfile angewählt und der Schalter "Jingle" angeklickt wurde,
kann per Tastendruck die Wiedergabe des Sounds gestartet werden. Das ist
besonders brauchbar auf Partys oder beim Nachvertonen von Videos ;-)
Wie funktioniert es?
--------------------
Das gewöhnliche Amiga Audio Device ist beschränkt auf 8Bit, 28kHz
Wiedergabegeschwindigkeit mit DMA. Mit der Einführung des ECS wurde die
28kHz Barriere überwunden, jedoch nur, wenn der aktuelle Displaymodus einer
mit doppelter Scanrate war, wie z.B. Productivity. Der Grund hierfür ist
die Abhängigkeit von Video- und Audio-DMA. Sollte kein ECS-Chipsatz
vorhanden sein oder ist das Umschalten auf Productivity nur zum Anhören
eines Sounds unerwünscht, kann Play16 die Wiedergaberate während des
Abspielens halbieren.
Ein anderer Weg, hohe Wiedergabequalität zu erlangen, ist IRQ. Das
funktioniert unabhängig vom Displaymodus. Ich habe, lange bevor ich an
Play16 zu schreiben angefangen habe, damit herumexperimentiert, es waren
aber immer derart viele "Jitter"-Störungen, daß meine heute verwendete
Wiedergabe Methode doch erheblich besser klingt.
Um auch lange Sounds wiedergeben zu können, wird die oft verwendete
DoubleBuffer-Methode benutzt. Alternativ können auch alle Daten in den
Speicher geladen werden, dies ist zum Abspielen kurzer Sounds oder zum
Wiedergeben von langsamen Medien wie Floppies oder bei Netzwerken sinnvoll.
Die 14Bit Ausgabe wird erreicht, indem ein Kanal auf jeder Seite auf
Lautstärke 64, der andere auf Lautstärke 1 gesetzt wird. Der lautere Kanal
repräsentiert dann die oberen 8 Bit, während der leisere die unteren 6
Bit wiedergibt. Da das Timing bei dieser Methode sehr kritisch ist, ist es
nötig, direkt auf die Hardware zuzugreifen, anstatt das audio.device zu
verwenden. Diese Methode mag in zukünftigen Amiga-Modellen nicht mehr
möglich sein - sollte es solche jemals geben... :-/
Unglücklicherweise sind die DACs im Amiga nicht linear. Eine spürbare
Soundqualitätssteigerung kann daher mit einer Kalibrierung des Subranging
Konverters erreicht werden. Dazu muß, mit Christian Buchners CyberSound
System, jeder Schritt einzeln eingestellt werden. Play16 kann die erstellten
Tabellen von CyberSound einlesen.
Die MPro Ausgabe verwendet die maestix.library von Richard Körber. Weitere
Details sind im Maestix-Paket auf dem Aminet zu finden.
=========================== Kapitel 3: Optionen ============================
Welche Optionen gibt es?
------------------------
Es gibt drei Wege, Optionen an Play16 zu übergeben:
CLI: In der Kommandozeile, AmigaOS 2.x Template
Workbench: Im Icon, Amiga Workbench Tooltype Einträge
Generell: Mit dem Setzen von Enviroment-Variablen. Dies ist noch nicht
für alle Funktionen möglich.
Die Tooltype Einträge sind identisch mit dem Keywords, die in der
Kommandozeile übergeben werden können. Für weitere Informationen über die
Verwendung von Keywords oder Tooltypes sei ein Blick in die AmigaOS-
Dokumentationen empfohlen. Die Enviroment-Variablen bestehen einfach aus
dem entsprechenden Namen und sind in ENV:Play16 abgelegt.
Grundlegende Optionen: (Alle Optionen mit (*) erlauben entsprechende
ENV-Variablen)
HELP/S Zeigt die Online-Hilfe
VERBOSITY/N Gibt den Grad der Informationsmenge an.
0: Nur Banner und Error-Meldungen
1: gibt Informationen über das Soundfile aus
2: Informationen über Programmablauf und den belegten Speicher
3: Debugging Informationen (dürfte wild aussehen :) )
Voreinstellung ist Level 0.
FAST/S(*) schaltet NICHT automatisch auf halbe Wiedergaberate herunter,
wenn die im Soundfile angegebene Rate 28kHz überschreitet.
Diese Option ist sinnvoll, wenn der Amiga im Productivity oder
ähnlichen Bildschirmmodi läuft.
HIFI/S Seit V1.4 überflüssig, aber aus Kompatiblitätsgründen noch
enthalten. Siehe "OUTPUT/K"
VOLUME/N Legt die Wiedergabe Lautstärke fest. Dies funktioniert nur
bei Paula8, Paula14, Paula14c und AHI Ausgabe.
NEU: Die Lautstärke wird jetzt in Prozent angegeben!
Mögliche Bereiche sind:
Paula8: 0% - 100%
Paula14: 0% - 400% (boost)
Paula14c: 0% - 400% (boost)
AHI: 0% - 100%
VORSICHT! Der Versuch, einen bereits voll ausgesteuerten Sound
noch zu verstärken führt zu starken Verzerrungen (Clipping).
OUTPUT/K(*) Setzt das Ausgabegerät. Mögliche Optionen sind:
Paula8 Standard 8Bit Ausgabe über die Amiga-Hardware. Dies ist die
Voreinstellung.
Paula14 Schaltet auf 14Bit Wiedergabe. Achtung! Dies ist eine Hack-
Routine, die direkt die Hardware-Register anspricht. Ich habe
alles getan, das mir einfiel, um andere Tasks zu schützen,
aber man weiß ja nie... Vorsicht also bei der Anwendung.
Paula14c Das gleiche wie bei Paula14, aber mit Kalibrierungs-
Preferenzen für noch bessere Wiedergabequalität. Siehe
Kapitel 2.
MPro Verwendet die Maestro Pro von MacroSystem für die Ausgabe.
Dabei werden nur 44.1kHz und 48kHz unterstützt. Bei der
44.1kHz Wiedergabe muß ein sauberes Signal am Eingang
der Karte anliegen, für detailiertere Informationen sei die
Anleitung von Maestix und der MPro-Karte empfohlen.
AHI Verwendet das AHI audio system von Martin 'Levicitus' Blom
für die Ausgabe.
Prelude Verwendet direkt die Prelude Soundkarte von A.C.T.
für die Ausgabe
8SVX Der Sound soll nicht abgespielt sondern in ein IFF-8SVX File
geschrieben werden. Im Grunde genommen ist dies die Ausgabe von
<Paula8> umgeleitet in ein File. Der Dateiname ist der der
Eingabedatei mit angehängtem "iff".
ACHTUNG: Alle Limits von <Paula8> gelten auch hier - also:
- 16Bit Sounds werden auf 8 Bit reduziert - schlechtere
Qualität
- Wenn FAST nicht gesetzt ist, wird die Sample-Rate auf
max. 28kHz reduziert
Ich empfehle dringend, das Original-File zu behalten, wenn
genug Platz dafür ist. Die Enttäuschung über die Soundqualität
beim Kauf eines besseren Sound-Systems könnte sonst groß sein!
FILTER/K(*) FILTER=ON : Audio Filter EIN bei Wiedergabe
FILTER=OFF : Audio Filter AUS bei Wiedergabe
FILTER=AUTO: Filter abhängig von der Samplerate setzen
Wenn FILTER nicht angegeben wird, läßt Play16 die Register
des AudioFilters unberührt.
LOOPS/N Gibt die Anzahl der Wiederholungen an. Voreinstellung ist
LOOPS=1 (spielt den Sound einmal).
LOOPS=0 bedeutet endlose Wiedergabe.
Weitere Optionen:
WINDOW/K(*) Ausgabefenster-Größe. Dieses Keyword kann nur als ToolType
eingetragen werden - und zwar nur im Play16 Icon selber. Wenn
es nicht angegeben wird, werden die voreingestellten Werte
verwendet.
SCREENMODE/N Art des Bildschirms, der während der Wiedergabe geöffnet
(*) werden soll. SCREENMODE=0 öffnet einen standard productivity
Screen.
PATH/K Setzt den Standardpfad für den Filerequester. In der
Kommandozeile hat die bloße Angabe eines Pfades statt
eines Filenamens den gleichen Effekt.
SINGLE/S Benutzt nur einen Buffer statt zwei und lädt alle Daten auf
einmal in den Speicher.
PRIORITY/N Setzt die Priorität von Play16, dabei können Werte zwischen
-25 und 25 angegeben werden, Voreinstellung ist 1.
MULTIPLE/S Öffnet den Filerequester nach dem Abspielen aller Files
erneut.
BUFFER/N Größe des AsyncIO Buffers in KBytes. Voreingestellt ist 64.
PRELOAD/S Lädt genug Daten in den Speicher, um die Wiedergabe auf einen
Tastendruck hin zu starten
MODE/N Benutzt den angegebenen Modus für AHI und öffnet keinen
AHI Mode Requester. Ist das niederwertige Wort der ModeID
null, wird der passende Modus mit BestAudioID ermittelt.
Mit GAIP16 (ist bei Play16 dabei) kann der gewünschte Modus
ermittelt werden. Die erste Dezimalzahl ist der Hardware-Code
(dann wird BestAudioID von Play16 verwendet), die zweite
Dezimalzahl steht für haargenau diesen Modus.
RAW/S Schaltet die Dateityperkennung ab und teilt Play16 mit, was
das Format des Sounds ist.
Sollte Play16 das Format nicht selber erkennen können, wird
ebenfalls auf RAW geschaltet. Soll dies verhindert werden,
kann STRICT gesetzt werden:
STRICT/S Spielt nur Files, die von der AutoDetect-Routine erkannt
werden. Dies ist sinnvoll, wenn z.B. keine plötzlichen
Krachgeräusche erwünscht sind (wenn z.B. Bilder statt
Sounds angehört werden sollen :-)
OUTPATH/K Benutzt diesen Pfad, um konvertierte 8SVX Dateien
abzuspeichern.
Beispiele:
a) Play16 music.wav
spielt das File "music.wav" einmal direkt von der Platte.
b) Play16 music.wav SINGLE
wie vor, lädt aber die Daten zunächst in den Speicher.
c) Play16 music.wav SINGLE VERBOSITY=1
wie vor, gibt aber zusätzliche Informationen aus.
d) Play16 rhythm.wav LOOPS=10
spielt den Rhythmus als fortlaufende Schleife (10mal).
e) Play16 explosion.wav SINGLE PRELOAD
lädt die Explosion in den Speicher und wartet auf einen Tastendruck
<return> vor dem Abspielen.
f) Play16 MyFavouriteTune.wav FAST OUTPUT=8SVX
konvertiert das angegebene File nach IFF-8SVX ohne Änderung der
Samplerate
g) Play16 MyFavouriteTune.wav OUTPUT=8SVX
wie vor, begrenzt aber die Samplerate der konvertierten Datei auf
28 kHz!
h) Play16 DemoSound RAW ALAW FREQ=8000
spielt eine von WilhelmTEL generierte raw ISDN A-Law Datei
Die folgenden Optionen teilen Play16 mit, welche Parameter benutzt werden
sollen, wenn der RAW-Modus angewendet wird. Dies ist entweder beim Setzen
von RAW der Fall oder wenn Play16 das File nicht identifizieren kann und
STRICT _nicht_ gesetzt ist.
Optionen im RAW Modus:
FREQ/N Sample-Frequenz in Hz
TRACKS/N Tracks, 1 = Mono, 2 = Stereo
BITS/N Auflösung in Bits, 8 oder 16
HEADER/N Länge des Headers: soviele Bytes sollen am Anfang des
Files ignoriert werden.
UNSIGNED/S Daten sind ohne Vorzeichen, nur bei 8 Bit Sounds
INTEL/S Daten sind im Intel Format, nur bei 16 Bit Sounds
ULAW/S Daten sind komprimiert mit µ-Law
ALAW/S Daten sind komprimiert mit A-Law
Die Voreinstellungen sind: 22050 Hz, Mono, 8 Bit, kein Header.
Wie benutze ich diesen RAW Modus?
---------------------------------
Tjaaaaa...
Wenn das Format des Soundfiles bekannt ist, sollten
RAW, FREQ, TRACKS, BITS, UNSIGNED und INTEL entsprechend gesetzt werden.
Sind die Werte nicht bekannt, bleibt nur Ausprobieren übrig. Hier einige
Tips, um es etwas einfacher zu gestalten:
Der HEADER sollte auf geraden Werten stehen (zunächst erstmal 0)
Wenn BITS 16 sein sollen, und es kommt nur Rauschen, kann INTEL probiert
werden.
Wenn BITS 8 sind und der Sound verzerrt klingt, kann UNSIGNED probiert werden.
Wenn dies nicht hilft, sollten verschiedene Kombinationen von BITS, INTEL
und UNSIGNED probiert werden.
Wenn ein erkennbares Ergebnis erreicht wurde und der Sound zu schnell oder
zu langsam läuft, sollte mit TRACKS und FREQ experimentiert werden.
Wenn bekannte und unbekannte Files gemischt gespielt werden sollen, ohne die
Kommandozeile zu ändern, sollten einfach alle bekannten Daten der Raw-Files
angegeben werden und die Keywords RAW und STRICT ausgelassen bleiben. Wenn
Play16 dann den Sound identifizieren kann, benutzt es die im File
angegebenen Werte - sonst verwendet es die Parameter der Kommandozeile.
Rechtliches
-----------
Play16 unterliegt dem Copyright, ist aber FreeWare. Es darf frei kopiert
werden, solange keine Änderungen am Programm und den begleitenden
Dokumentationen vorgenommen wurden. Eine Unkostenbeteiligung in Höhe der
Selbstkosten darf erhoben werden.
Play16 darf nicht für kommerzielle Zwecke verwendet oder in einem
kommerziellen Produkt enthalten sein, ohne daß eine schriftliche
Genehmigung des Autors vorliegt.
Jegliche Verantwortung für beschädigte Lautsprecher, Verstärker, Amigas oder
andere bei der Verwendung von Play16 beteiligten Geräte wird ausdrücklich
abgelehnt.
Obwohl ich einige Betatests durchgeführt habe, kann ich nicht garantieren,
daß Play16 nicht crasht! Jeder aufgefundene Fehler sollte mir berichtet
werden.
Es ist weder der Fehler von MacrosSystem noch repräsentiert es die Qualität
der Produkte von MacroSystem, sollte die Ausgabe von MPro oder der
maestix.library nicht funktionieren.
Verschiedenes
-------------
Ich sage nicht, daß Play16 schnell ist. Ich habe einiges optimiert, aber da
das Lade/Konvertier-Modul universell ist, werden mehr Daten hin- und
hergeschoben, als tatsächlich zum Abspielen nötig wäre.
Dennoch habe ich seperate optimierte Routinen für 8 Bit und 14/16 Bit
eingebaut.
Ich kann unter folgenden Adressen erreicht werden:
Internet: wenzel@unixserv.rz.fh-hannover.de (vorzugsweise)
Thomas_Wenzel@aventure.fido.de
Fido: 2:2432/350.28 oder 2:241/1035.6
Mail-Routing im Fido ist NICHT immer verläßlich!
Wer dieses Programm verwendet, sollte mir bitte eine Mail schicken. Ich
wüßte gerne, wie viele Leute daran interessiert sind.
Entwicklungsgeschichte
----------------------
Bitte in der englischen Dokumentation nachlesen
Zukünftiges
-----------
- Unterstützung der in 8SVX Files gespeicherten Loops
- Einfacher Mitten- und Surroundkanal Dekoder
Um folgendes einzubauen habe ich im Moment leider keine Zeit
------------------------------------------------------------
- ADPCM Decompression auch für andere Dateitypen (z.B. ZyXEL)
- einige Filetype von Macintosh Software (z.B. Sound-Designer)
(Braucht das wirklich jemand? Ich denke, AIFF sollte ausreichend sein.)
- Datatypes Unterstützung
- Bessere VOC-Unterstützung
- Zyklischer Puffer für Wiedergabe statt Double Buffering
Bekannte Fehler
---------------
Wiederholtes Abspielen (looping) von Fibonacci Delta Sounds könnte
verzerrt klingen.
Lange VOC Sounds können nicht komplett abgespielt werden.
Wenn nicht genug Rechenzeit frei ist, wiederholt Play16 manchmal Teile
des Sounds und bricht die Wiedergabe eventuell vorzeitig ab. Vielleicht
bessert sich das Problem durch asyncio ein wenig.
Paula14 und Paula14c verschlucken sich am Anfang auf einigen Systemen.
Ich konnte bisher leider nicht herausfinden, warum :-(
Danksagungen
------------
Danke geht an die folgenden Personen:
Kai Stuke für wichtige Tips zur C-Programmierung und zum Audio-
Device des Amiga, außerdem für das BetaTesten von Play16
Marc Albrecht für Betatesten und Tips zur Codeoptimierung, sowie für
die deutsche Version dieser Anleitung
Clete Baker für die Spezifikationen von AIFF und SDII
Richard Körber für die Maestix Library und dafür, daß sie FreeWare ist
Christian Buchner für seine Forschungen und Ideen zur 14Bit Ausgabe und
deren Kalibrierung
Mario Cattaneo für das nette Play16 drawer Icon
Christian A. Weber für seinen guten ISDN A-Law decoder source
Martin Blom für das geniale AHI audio system
Und an alle die, die mir geschrieben haben!